package com.itcam.iostream_;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

/**
 * Author:Cammy.Wu
 * Date:2024-05-13
 * Description:
 */

public class ByteStreamDemo01 {
    public static void main(String[] args) throws IOException {
        // 功能：利用字节流将文件中内容读到程序中
        // 1.创建文件
        File file = new File("e:\\IOstream\\Output.txt");
        // 2.将字节流管对到源文件上
        FileInputStream fis = new FileInputStream(file);
        // 3.开启读取动作
        /**
         * TODO:细节1：
         *          文件是utf-8进行存储的，所以英文字符底层实际占用了一个字节，中文字符底层实际占用3个字节
         *      细节2：
         *          如果文件是文本文件，那么就不要适用字节流读取，建议使用字符流
         *      细节3：
         *          read()读取一个字节，但是返回值是int类型，read方法底层让返回的数据都是“正数”
         *              是为了避免如果字节返回-1时，时入到字节还是读到文件结尾的问题
         */
        int n = fis.read();
        while(n!=-1){
            System.out.print((char) n);
            n=fis.read();
        }
        // 4.关闭流
        fis.close();
    }
}
